/*
 * @Author: szx
 * @Date: 2021-11-30 13:50:51
 * @LastEditTime: 2021-11-30 14:04:30
 * @Description:
 * @FilePath: \leetcode\1-99\14\14.js
 */
/**
 * @param {string[]} strs
 * @return {string}
 */
// var longestCommonPrefix = function (strs) {
//     if (!strs.length) return '';
//     let prefix = strs[0];
//     const n = strs.length;
//     for (let i = 1; i < n; i++) {
//         const length = Math.min(prefix.length, strs[i].length);
//         let index = 0;
//         while (index < length && prefix[index] == strs[i][index]) {
//             index++;
//         }
//         prefix = prefix.substr(0, index);
//         if (!prefix.length) break;
//     }
//     return prefix;
// };

// var longestCommonPrefix = function (strs) {
//     if (!strs.length) return '';
//     let length = strs[0].length;
//     const n = strs.length;
//     for (let i = 0; i < length; i++) {
//         let c = strs[0][i];
//         for (let j = 1; j < n; j++) {
//             if (i == strs[j].length || strs[j][i] != c) {
//                 return strs[0].substr(0, i);
//             }
//         }
//     }
//     return strs[0];
// };

var longestCommonPrefix = function (strs) {
    if (!strs.length) return '';
    strs.sort();
    let st = strs[0],
        en = strs[strs.length - 1];
    let i,
        num = Math.min(st.length, en.length);
    for (i = 0; i < num && st[i] == en[i]; i++);
    return st.substr(0, i);
};
console.log(longestCommonPrefix(['flower', 'flow', 'flight']));
